Repository navigation
fix(audio): recognize individual propagation path import - #1947
Conversation
MarcZX10
left a comment
There was a problem hiding this comment.
Reviewed the full diff, the public signature reference, and the regression coverage. The singular setter is declared separately from the plural API, throws through the named unsupported-function path without reading or writing caller memory, and the test checks both sentinel preservation and null refusal. The author reports Windows binding tests through the real relinker/GOT path; upstream Linux and Windows Build, Conventions, and Progress checks are green on this head. The PR clearly records that successful updates and title gameplay remain unverified. No blocking issue found.
Dextroid17
left a comment
There was a problem hiding this comment.
Verified on Linux — a compile-level differential, and the "does not touch caller memory" claim is genuinely pinned.
- Arm A (this PR):
guest_audio_propagation_testsbuilds and passes, exit 0. - Arm B (control):
AudioPropagation.hppandExport.cppback atmainwith the test kept → the build fails to compile:GuestAudioPropagation.cpp:123: 'sceAudioPropagationSourceSetAudioPath' was not declared. So the test depends on the new declaration, which is precisely what an eager-import fix has to provide. - Claim cross-check: the implementation discards all three arguments (
static_cast<void>) and then callsNotImplemented_nid_no_patch(__func__), so nothing reads or writes caller memory — and the test turns that into an assertion: it fills a0xe0buffer with0xa5and checks every byte is still0xa5after the throwing call, then repeats with a null pointer. That guarantee is the part a reader cannot see from the diff. - Project rule:
python3 tools/pr_overlap.py --repo boykopovar/AnyPS5 --branch verify/1947→ "No overlap with open pull requests." So theTechnicalDebt.mdedit does not collide with the other open PRs that touch that file.
For the merge bar: the NID (tKSmk2JsMAA) is quoted and matches TechnicalDebt's entry, but the title is only named — the FAIL: unresolved ELF import ... from libSceAudioPropagation.prx line, plus an ID, would put the evidence next to the fix. I have no dump of it to reproduce that here.
Not verified: the title's own start-up failure.
Written with AI assistance.
|
Which SAROS ID is this, and what's the |
|
The NID half is answerable, and it resolves to the singular name this PR declares. Running the project's own oracle on the import from the body:
The other half — which SAROS title ID — cannot come out of a NID: a NID identifies a function, not a title, so that one belongs to whoever ran it. Written with AI assistance. |
|
Rebased on main (only a TechnicalDebt.md adjacency conflict) and, as asked above, dropped the new test lines from |
3adc4ff to
2e01ba2
Compare
|
Other open pull requests touch the same code. Merging one will break the other, or both implement the same thing. If this one builds on them, list them in Depends on.
|
…tion-singular-path fix(audio): recognize individual propagation path import
What
SAROS imports
tKSmk2JsMAAfromlibSceAudioPropagation, but the library only declares the pluralsceAudioPropagationSourceSetAudioPaths. Eager import resolution therefore fails before the executable starts.Declare the distinct singular
sceAudioPropagationSourceSetAudioPath(uint64_t path, const void* data, float gain). Its signature follows the pinned public SharpProspero declaration linked in TechnicalDebt. Invocation calls the standard named unsupported-function helper and throws without reading or writing caller memory. Successful path updates remain unsupported; allocation, ownership, rendering and console error codes remain unknown.Extend
guest_audio_propagationwith sentinel-memory preservation and null-input refusal checks. Existing zero-path behavior remains unchanged.Tested
Windows x86-64, WinLibs GCC 15.2.0, Release, current
mainatf145139676a48306681d3a4d5fabf83938759daf.BUILD_TESTING=ON; builtnid_patcher,guest_audio_propagation_tests,guest_thread_callback_abi_testsandwindows_exception_tests, including their libc, libkernel and audio dependencies.ctest --test-dir build --output-on-failure -R "^(guest_audio_propagation|guest_thread_callback_abi|windows_exceptions)$": 3/3 passed.python tools/check_conventions.py --base origin/mainandgit diff --check: passed.A separate local SAROS trial, with a private resource mount and all 40 guest modules, exited at a later unresolved Acm import before guest initialization or ELF entry. Main-first eager import order supports that the original audio import resolved; the title never invoked this setter. That trial was not a clean run of this public candidate. No title window, rendering or gameplay was observed. Successful audio-path updates, float-register transport and gameplay remain unverified. The full test suite was not rerun.
Checklist
main; no other open PR implements the same functionsNotImplemented_nid_no_patch); no silent stub added